<?php

/**
 * 用户禁止信息的搜索的Data-object.
 *
 * @author xiaoxia.xu <x_824@sina.com>
 * @copyright ©2003-2103 phpwind.com
 * @license http://www.windframework.com
 *
 * @version $Id: PwUserBanSo.php 21659 2012-12-12 07:00:13Z xiaoxia.xuxx $
 */
class PwUserBanSo
{
    private $data = array();
    private $argsUrl = array();
    private $type = '';
    private $keywords = '';

    /**
     * 设置搜索的类型'username'/'uid'.
     *
     * @param string $type
     *
     * @return PwUserBanSo
     */
    public function setType($type)
    {
        $this->type = $type;
        $this->argsUrl['key'] = $type;

        return $this;
    }

    /**
     * 设置搜索类型对应的值
     *
     * @param string $keywords
     *
     * @return PwUserBanSo
     */
    public function setKeywords($keywords)
    {
        $this->keywords = $keywords;
        $this->argsUrl['value'] = $keywords;

        return $this;
    }

    /**
     * 设置 创建禁止的人.
     *
     * @param string $created_username
     *
     * @return PwUserBanSo
     */
    public function setCreatedUsername($created_username)
    {
        $this->argsUrl['operator'] = $created_username;
        if ('system' != strtolower($created_username)) {
            /* @var $userDs PwUser */
            $userDs = Wekit::load('user.PwUser');
            $info = $userDs->getUserByName($created_username);
            if ($info) {
                $this->data['created_userid'] = $info['uid'];
            }
        } else {
            $this->data['created_userid'] = 0;
        }

        return $this;
    }

    /**
     * 设置禁止开始的时间.
     *
     * @param string $start_time
     *
     * @return PwUserBanSo
     */
    public function setStartTime($start_time)
    {
        $this->argsUrl['start_time'] = $start_time;
        $this->data['start_time'] = $start_time ? Pw::str2time($start_time) : '';

        return $this;
    }

    /**
     * 设置禁止结束的时间.
     *
     * @param string $end_time
     *
     * @return PwUserBanSo
     */
    public function setEndTime($end_time)
    {
        $this->argsUrl['end_time'] = $end_time;
        $this->data['end_time'] = $end_time ? Pw::str2time($end_time) : '';

        return $this;
    }

    /**
     * 以数组格式获得数据.
     *
     * @return array
     */
    public function getData()
    {
        if ($this->keywords) {
            if ($this->type == 'username') {
                /* @var $userDs PwUser */
                $userDs = Wekit::load('user.PwUser');
                $info = $userDs->getUserByName($this->keywords);
                if ($info) {
                    $this->data['uid'] = $info['uid'];
                }
            } else {
                $this->data['uid'] = $this->keywords;
            }
        }

        return $this->data;
    }

    /**
     * 获得搜索条件.
     *
     * @param string $field
     *
     * @return string
     */
    public function getCondition($field)
    {
        return isset($this->argsUrl[$field]) ? $this->argsUrl[$field] : '';
    }

    /**
     * 获得分页数据.
     *
     * @return array
     */
    public function getArgsUrl()
    {
        return $this->argsUrl;
        /* $url = array();
        foreach ($this->argsUrl as $key => $val) {
            $val && $url[] = $key . '=' . $val;
        }
        return implode('&', $url); */
    }
}
